import axios from 'axios';
import config from '../config'; // 引入配置文件

const apiClient = axios.create({
  baseURL: config.API_BASE_URL, // 使用配置中的基础 URL
  headers: {
    'Content-Type': 'application/json',
  },
});

// 添加请求拦截器
apiClient.interceptors.request.use((config) => {
  const token = localStorage.getItem('token'); // 从 localStorage 获取 token
  if (token) {
    config.headers['Authorization'] = `Bearer ${token}`; // 将 token 添加到请求头
  }
  return config;
});

// 用户注册
export const registerUser = (userData) => {
  return apiClient.post('/api/v1/auths/signup', userData);
};

// 用户登录
export const loginUser = (userData) => {
  return apiClient.post('/api/v1/auths/signin', userData);
};

// 获取用户信息
export const fetchUserProfile = () => {
  return apiClient.get('/api/v1/auths'); // 假设这是获取用户信息的接口
};

// 更新用户信息
export const updateUserProfile = (userData) => {
  return apiClient.put('/api/v1/auths/update', userData); // 假设这是更新用户信息的接口
};

// 获取所有组件
export const fetchAllComponents = (page = 1, pageSize = 6) => {
  return apiClient.get(`/api/v1/component/list?page=${page}&pageSize=${pageSize}`);
};

// 获取组件详情
export const fetchComponentDetail = (id) => {
  return apiClient.get(`/api/v1/component?id=${id}`);
};

// 添加组件
export const addComponent = (componentData) => {
  return apiClient.post('/api/v1/component', componentData);
};

// 更新组件
export const updateComponent = (componentData) => {
  return apiClient.put('/api/v1/component', componentData);
};

// 删除组件
export const deleteComponent = (id) => {
  return apiClient.delete(`/api/v1/component?id=${id}`);
};

// 上传用户头像
export const uploadUserAvatar = (formData) => {
  return apiClient.post('/api/v1/auths/avatar', formData, {
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  });
};
